﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MakeIT.Framework.Util;
using System.Net.Mail;
using System.Net;
using MakeIT.Alf.Site.Negocios;

namespace MakeIT.Alf.Site.Apresentacao
{
    public partial class Contato : System.Web.UI.Page
    {
        string captcha = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            captcha = (string)this.Session["captcha"];
            this.ImageCaptcha.ImageUrl = "~/getCaptcha.aspx?token=" + DateTime.Now.Ticks.ToString();

            if (!IsPostBack)
            {
                lblDescricao.Text = AlfDAO.getParametro(null, "Contato.Texto.Descricao").valor;

                if (Request["idImovel"] != null)
                {
                    try
                    {
                        this.txtCodigo.Text = int.Parse(Request["idImovel"]).ToString();
                        this.txtAssunto.Text = "Contato sobre Imóvel " + Request["idImovel"];
                    }
                    catch (Exception ex) { }
                }
            }
        }

        protected void btnEnviar_Click(object sender, ImageClickEventArgs e)
        {
            string capt = this.txtCaptcha.Text;

            if (capt.Trim().Length > 0)
            {
                if (capt.ToUpper().Trim().Equals(captcha))
                {
                    mvContato.ActiveViewIndex = 1;
                    sendEmail();
                }
                else
                {
                    Util.ExibeAlert(this, "Código de Segurança Inválido!");
                }
            }else
            {
                Util.ExibeAlert(this, "Digite o Código de Segurança!");
            }
        }

        protected void sendEmail()
        {
            try
            {
                MailMessage oEmail = new MailMessage();
                MailAddress sDe = new MailAddress(AlfDAO.getParametro(null, "Email.Administrador").valor);

                oEmail.To.Add(AlfDAO.getParametro(null, "Email.Destino").valor);
                oEmail.From = sDe;
                oEmail.Priority = MailPriority.Normal;
                oEmail.IsBodyHtml = false;
                oEmail.Subject = "Contato de Cliente - Site www.imovelconsulte.com.br";
                oEmail.Body = "Um usuário enviou esta mensagem pelo site www.imovelconsulte.com.br:\n\n\n" +
                              "Código do imóvel: " + txtCodigo.Text + "\n" +
                              "Nome: " + txtNome.Text + "\n" +
                              "Email: " + txtEmail.Text + "\n" +
                              "Telefone: " + txtTelefone.Text + "\n" +
                              "Região: " + txtRegiao.Text + "\n" +
                              "Assunto: " + txtAssunto.Text + "\n" +
                              "Mensagem:\n[ " + txtMsg.Text + " ]\n\n" +
                              "*Este email foi enviado automaticamente pelo site em " + DateTime.Now.ToString();

                SmtpClient oEnviar = new SmtpClient();
                oEnviar.Host = AlfDAO.getParametro(null, "Email.Host.SMTP").valor;
                oEnviar.Port = int.Parse(AlfDAO.getParametro(null, "Email.Host.SMTP.Port").valor);

                oEnviar.Credentials = new NetworkCredential(
                                                AlfDAO.getParametro(null, "Email.Administrador").valor,
                                                AlfDAO.getParametro(null, "Email.Administrador.Pass").valor);
                oEnviar.Send(oEmail);
                oEmail.Dispose();

                lblMsgEnviado.Text = AlfDAO.getParametro(null, "Email.Mensagem.Enviado").valor;

            }
            catch (Exception ex)
            {
                lblMsgEnviado.Text = "ERRO AO ENVIAR O FORMULARIO!  ERRO:" + ex.Message;
            }
        }
    }
}